package io.renren.modules.practice.service;

import com.baomidou.mybatisplus.extension.service.IService;
import io.renren.modules.practice.entity.AlgorithmQuizEntity;
import io.renren.modules.practice.entity.dto.AlgorithmSubmitDto;
import io.renren.modules.practice.entity.dto.CodeSaveDto;
import io.renren.modules.practice.entity.vo.AlgorithmQuizDetailVo;
import io.renren.modules.practice.entity.vo.AlgorithmSubmitResultVo;

import java.util.List;

public interface AlgorithmPracticeService extends IService<AlgorithmQuizEntity> {

    /**
     * 根据章节ID查询算法题目列表
     */
    List<AlgorithmQuizEntity> getQuizListByChapterId(Integer chapterId);

    /**
     * 根据题目ID查询题目详情（包含测试用例）
     */
    AlgorithmQuizDetailVo getQuizDetailById(Integer quizId);

    /**
     * 提交算法题目代码并判题
     */
    AlgorithmSubmitResultVo submitAlgorithmCode(AlgorithmSubmitDto submitDto);

    /**
     * 保存用户代码
     */
    void saveUserCode(CodeSaveDto codeSaveDto);

    /**
     * 获取用户保存的代码列表
     */
    List<CodeSaveDto> getUserSavedCodes(Integer userId, Integer quizId);

    /**
     * 获取算法章节列表
     */
    List<io.renren.modules.learn.entity.AlgorithmChapterEntity> getChapters();

    /**
     * 运行Python代码，支持python2/python3
     */
    String runPythonCode(String code, String pythonVersion);
} 